Single instruction multiple data (SIMD) processors are generally used in applications that exhibit massive amounts of data parallelism without complicated control flow or excessive amounts of inter-processor communication. Typical applications for SIMD processors may include low-level vision and image processing, such as, for example, pattern recognition, database searches, and statistic analysis. One common operation involved in image processing is to find the minimum or maximum value and its associated index into a large data array. Most SIMD processors provide instructions that may quickly perform the minimum and maximum operations. However, if the SIMD processors have to keep track of the indices that produce these values, the data parallelism of SIMD instructions may be broken.